home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / avr32 / mach-at32ap / include / mach / gpio.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  939 b   |  46 lines

  1. #ifndef __ASM_AVR32_ARCH_GPIO_H
  2. #define __ASM_AVR32_ARCH_GPIO_H
  3.  
  4. #include <linux/compiler.h>
  5. #include <asm/irq.h>
  6.  
  7.  
  8. /* Some GPIO chips can manage IRQs; some can't.  The exact numbers can
  9.  * be changed if needed, but for the moment they're not configurable.
  10.  */
  11. #define ARCH_NR_GPIOS    (NR_GPIO_IRQS + 2 * 32)
  12.  
  13.  
  14. /* Arch-neutral GPIO API, supporting both "native" and external GPIOs. */
  15. #include <asm-generic/gpio.h>
  16.  
  17. static inline int gpio_get_value(unsigned int gpio)
  18. {
  19.     return __gpio_get_value(gpio);
  20. }
  21.  
  22. static inline void gpio_set_value(unsigned int gpio, int value)
  23. {
  24.     __gpio_set_value(gpio, value);
  25. }
  26.  
  27. static inline int gpio_cansleep(unsigned int gpio)
  28. {
  29.     return __gpio_cansleep(gpio);
  30. }
  31.  
  32.  
  33. static inline int gpio_to_irq(unsigned int gpio)
  34. {
  35.     if (gpio < NR_GPIO_IRQS)
  36.         return gpio + GPIO_IRQ_BASE;
  37.     return -EINVAL;
  38. }
  39.  
  40. static inline int irq_to_gpio(unsigned int irq)
  41. {
  42.     return irq - GPIO_IRQ_BASE;
  43. }
  44.  
  45. #endif /* __ASM_AVR32_ARCH_GPIO_H */
  46.